//
//
// //标准阶乘公式
// function factorial(num){
//     if(num <= 1){
//         return 1;
//     }
//     return num * factorial(num-1);
// }
//
// console.log(factorial(5))//120
// //优化标准阶乘公式
// function newFactorial(num){
//     if(num <= 1){
//         return 1;
//     }
//     //arguments.callee指代正在执行的当前函数
//     return num * arguments.callee(num - 1);
// }
// let param = newFactorial;
// console.log(param(5))//120

// 命名函数表达式
const factorial = (function f(num){
    if( num <= 1){
        return 1;
    }
    return num * f(num-1);
})
let newFactorial = factorial;
console.log(newFactorial(5))//120
